/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Reporte;

import net.sf.jasperreports.swing.JRViewer;
import java.sql.Connection;
import java.util.Map;
import javax.swing.JFrame;
import java.util.HashMap;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;

/**
 *
 * @author Cynthia
 */
public class ReporteParametrizado extends JFrame {

    //Método encargado de crear y hacer visible el reporte 
    public void showReport(Connection conexion, String proyecto, String rutaReporte) {
        try {

            //pasamos parámetros al reporte Jasper
            Map parameters = new HashMap();
            parameters.put("Proyecto", proyecto);
            //JasperReport report = JasperCompileManager.compileReport(reporte);
            //JasperReport report=(JasperReport) JRLoader.loadObject( reporte ); 
            JasperPrint print = JasperFillManager.fillReport(rutaReporte, parameters, conexion);

            //JasperReport report = JasperCompileManager.compileReport(reporte);
            //JasperPrint print = JasperFillManager.fillReport(report, null, conexion);
            JRViewer viewer = new JRViewer(print);
            viewer.setFitPageZoomRatio();
            viewer.setOpaque(true);
            viewer.setVisible(true);
            this.add(viewer);
            this.setSize(1000, 700);

            this.setLocationRelativeTo(null);
            this.setVisible(true);
            this.setDefaultCloseOperation(this.DISPOSE_ON_CLOSE);

        } catch (Exception ex) {
            System.out.println("CAUSE: " + ex.getCause());
            System.out.println("MESSAGE" + ex.getMessage());
            System.out.println("LOCAL MESSAGE" + ex.getLocalizedMessage());
            ex.printStackTrace();
        }

    }

    //hace visible las métricas sin restricciones de tiempo, es decir, las historicas
    public void showReport(Connection conexion, String proyecto, String rutaReporte, String titulo) {
        try {

            //pasamos parámetros al reporte Jasper
            Map parameters = new HashMap();
            parameters.put("Proyecto", proyecto);
            parameters.put("RestriccionTitulo", titulo);
            //JasperReport report = JasperCompileManager.compileReport(reporte);
            //JasperReport report=(JasperReport) JRLoader.loadObject( reporte ); 
            JasperPrint print = JasperFillManager.fillReport(rutaReporte, parameters, conexion);
            JRViewer viewer = new JRViewer(print);
            viewer.setFitPageZoomRatio();
            viewer.setOpaque(true);
            viewer.setVisible(true);
            this.add(viewer);
            this.setSize(1000, 700);

            this.setLocationRelativeTo(null);
            this.setVisible(true);
            this.setDefaultCloseOperation(this.DISPOSE_ON_CLOSE);

        } catch (Exception ex) {
            System.out.println("CAUSE: " + ex.getCause());
            System.out.println("MESSAGE" + ex.getMessage());
            System.out.println("LOCAL MESSAGE" + ex.getLocalizedMessage());
            ex.printStackTrace();
        }

    }

    //hace visible las métricas restringidas por AÑO
    public void showReport(Connection conexion, String proyecto, String rutaReporte, String año, String titulo) {
        try {

            //pasamos parámetros al reporte Jasper
            Map parameters = new HashMap();
            parameters.put("Proyecto", proyecto);
            parameters.put("RestriccionTitulo", titulo);
            parameters.put("Año", año);
            //JasperReport report = JasperCompileManager.compileReport(reporte);
            //JasperReport report=(JasperReport) JRLoader.loadObject( reporte ); 
            JasperPrint print = JasperFillManager.fillReport(rutaReporte, parameters, conexion);
            JRViewer viewer = new JRViewer(print);
            viewer.setFitPageZoomRatio();
            viewer.setOpaque(true);
            viewer.setVisible(true);
            this.add(viewer);
            this.setSize(1000, 700);

            this.setLocationRelativeTo(null);
            this.setVisible(true);
            this.setDefaultCloseOperation(this.DISPOSE_ON_CLOSE);

        } catch (Exception ex) {
            System.out.println("CAUSE: " + ex.getCause());
            System.out.println("MESSAGE" + ex.getMessage());
            System.out.println("LOCAL MESSAGE" + ex.getLocalizedMessage());
            ex.printStackTrace();
        }

    }

    //hace visible las métricas restringidas por MES
    public void showReport(Connection conexion, String proyecto, String rutaReporte, String año, String mes, String fechaInicio, String fechaFin,String titulo) {
        try {

            //pasamos parámetros al reporte Jasper
            Map parameters = new HashMap();
            parameters.put("Proyecto", proyecto);
            parameters.put("RestriccionTitulo", titulo);
            parameters.put("Año", año);
            parameters.put("Mes", mes);
            parameters.put("FechaInicio", fechaInicio);
            parameters.put("FechaFin", fechaFin);
            //JasperReport report = JasperCompileManager.compileReport(reporte);
            //JasperReport report=(JasperReport) JRLoader.loadObject( reporte ); 
            JasperPrint print = JasperFillManager.fillReport(rutaReporte, parameters, conexion);

            JRViewer viewer = new JRViewer(print);
            viewer.setFitPageZoomRatio();
            viewer.setOpaque(true);
            viewer.setVisible(true);
            this.add(viewer);
            this.setSize(1000, 700);

            this.setLocationRelativeTo(null);
            this.setVisible(true);
            this.setDefaultCloseOperation(this.DISPOSE_ON_CLOSE);

        } catch (Exception ex) {
            System.out.println("CAUSE: " + ex.getCause());
            System.out.println("MESSAGE" + ex.getMessage());
            System.out.println("LOCAL MESSAGE" + ex.getLocalizedMessage());
            ex.printStackTrace();
        }

    }

    
}
